home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
progtool
/
modula2
/
m2d2
/
rcsmaker
/
rsc2mod.txt
< prev
Wrap
Text File
|
1995-11-25
|
5KB
|
114 lines
>>> The *PSB-Modula-2/ST ResourceMaker <<<
*Pentagramm Software Braunschweig 14.05.92
Thomas Birke Hinnerk Rümenapf
birke@bii.bessy.de Ottweilerstr. 18
38116 Braunschweig
Ein Programm von Thomas Birke
Die Programme sind nach bestem Wissen und Gewissen getestet und für gut
befunden. Ich übernehme jedoch keine Gewähr für die Fehlerfreiheit,
der Software, und bin insbesondere nicht haftbar für eventuelle Schäden
oder Datenverluste, die durch die Programme verursacht wurden.
Das Programm darf von jedem weitereggeben und genutzt werden, jedoch liegen
alle Rechte bei den Autoren.
Resource-Datei und Resource-Einbindung
======================================
Resource-Datei
--------------
Die Informationen wie Menüzeile(n) und Dialogboxen aussehen werden
normalerweise in RSC-Dateien abgelegt, die vom zugehörigen Programm geladen
werden.
In Sonderfällen (z.B. bei Accessories) ist dieses Verfahren jedoch unbequem,
oder führt sogar zu Problemen.
Resource-Einbindung
-------------------
Die Alternative zu Resource-Dateien ist die direkte Einbindung der Daten in
das Programm. RSC2MOD setzt die Daten der RescorceDatei (.RSC) in einen
Modula2-Quelltext um. Die Information wird in Prozeduren geschrieben, die nur
Daten enthalten. Dazu ist es notwendig den Prozedurstart und -ende Code
wegzulassen. Im TDI-Modula2 geht das mit der Compiler-Option (*$P-*) vor
der Prozedur (s. die Datei RSC2MOD.MSK ).
Resource-Anpassung
Das direkte Einbenden der Resourcedaten hat auch Nachteile. Das AES passt
die Daten nach dem Laden automatisch an die Größe des System-Zeichensatzes
an. Bei eingebundenen Daten muß das durch eine Prozedur des Programms
geschehen (s. die Datei RSC2MOD.MSK ).
Die Prozedur muß einmal aufgerufen werden nachdem das Programm sich beim
AES angemeldet hat. RSC2MOD erzeugt KEIN Definitionsmodul, es muß jedoch
nur die Prozedur RelocateRSC exportiert werden. Existiert bereits ein
Definitionsmodul (z.B. mit den Objekt-Indices s.u.) muß nur die Prozedur
RelocateRSC nachgetragen werden.
Die Prozedur RelocateRSC ist in mehrere Blöcke unterteilt. Es werden nur
die benötigten in die Ausgabedatei übernommen (s. Die Datei RSC2MOD.MSK).
Resource-Indices
Die Programme zur Erstellung von Resource-Dateien erzeugen auch Dateien,
in denen die Indices der Objekte abgelegt sind. Für Modula2 wird
üblicherweise ein Definitionsmodul erzeugt.
An der Behandlung der Indices ändert sich NICHTS. Sie müssen nur
den Aufruf ResourceLoad (...) durch RelocateRSC ersetzen (s.o.),
und den Aufruf von ResourceFree weglassen. Sogar AES-Funktionen
wie ResourceGetAddr (...) arbeiten dann einwandfrei.
Die Datei RCS2MOD.MSK
=====================
Diese Datei enthält einen Rahmen, der mit den gelesenen Resource-Daten zur
Ausgabedatei kombiniert wird. Sie kann zur Anpassung an verschiedene Modula2
Systeme verändert werden. So muß evtl. zur Typumwandlung die Funktion VAL
verwendet werden, anstatt den neuen Typ als Funktion zu verwenden, die
Funktion CODE ist evtl. durch INLINE zu ersetzen, ... .
Wichtig ist dabei, daß die Bedeutung von Textstücken zwischen zwei @
Symbolen nicht verändert wird. An den Stellen, an denen ein @ in der Datei
steht, greift das Programm ein.
Also: wenn Ihr Modula2-System Änderungen erfordert, beschränken Sie sich
(wenn möglich) auf die Importliste und die Funktionsnamen. Bevor Sie die
Datei verändern legen Sie eine Sicherungskopie des Originals an (das kann
nicht oft genug gesagt werden!).
Die Datei RCS2MOD.MSK muß in demselben Verzeichnis stehen wie RCS2MOD.PRG.
Extra
=====
RSC2MOD arbeitet mit dem M2OPTIONS-Accessory des TDI-Modula2 Systems
zusammen.
Die mitgelieferte Datei RSC2MOD.MSK ist an die Eigenheiten des TDI-Modula2
angepasst.
WARNUNG
=======
Die Ausgabedatei überschreibt gnadenlos (aber nach Rückfrage) eine evtl.
schon vorandene Datei gleichen Namens. Passen sie also auf Ihre Quelltexte
auf. Spendieren Sie ein extra-Modul für die Resource!
Alle unsere Programme werden auf Herz und Nieren getestet, um soviele Fehler
wie möglich zu beseitigen. Wir können trotzdem keine Garantie übernehmen,
daß die Programme vollständig fehlerfrei sind. Insbesondere haften wir nicht
für Datenverluste oder andere Defekte, die auf Programmfehler in unseren
Produkten zurückzuführen sind. Es können keine Schadensersatzansprüche an
uns geltend gemacht werden.
Doku von HWR
+++